8.5.1 型推論とジェネリクス
Goでは演算子:=を使うときに型推論をしてくれているが、ジェネリック関数を呼び出す際にも呼び出しを単純にするために型推論をしてくれる
状況によって型推論できない場合はエラーになるので型注釈が必要になる場合もある
code:go
package main
import (
"fmt"
"reflect"
)
type Integer interface {
int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64
}
return T2(in)
}
func main() {
var a int = 10
b := Convert(a) // 戻す型を推論できないのでエラー in call to Convert, cannot infer T2 (declared at ./prog.go:12:18)
fmt.Println(b, reflect.TypeOf(b)) // 10 int64
}